package 框架学习.SpringBoot.应用.分层解耦.分层.web开发的三层架构;

public class index {
    public static void main(String[] args) {
        //在springboot-showEmployee项目的showEmpController中
        //解析x m l文件的代码属于：          数据访问
        //处理请求信息设置响应结果的代码属于：  逻辑处理
        //最后返回响应数据的代码属于：         接收请求，响应数据

        //而这些功能都写在一个方法中了
        //开发中，要尽量保证方法或接口功能单一（单一职责原则）
        //这样就能让方法、接口的
        //复杂性更低、可读性更强、拓展性更好，也更利于后期的维护

        //基于上述原则，web开发才有了三层架构

        //web开发的三层架构：
        //1、Controller：控制层，接收前端发送的请求，对请求进行处理，并响应数据（主要职责：接收请求，响应数据）
        //2、Service：业务逻辑层。处理具体的业务逻辑（主要职责：逻辑处理）
        //3、Dao：数据访问层(Data Access Object)（持久层）负责数据访问，，包括数据的增删改查（主要职责：数据访问）


        //客户端浏览器向服务器发出请求，会先到达Controller（控制层）
        //然后Controller接收到请求之后，会调用Service（逻辑处理层）进行逻辑处理
        //Service处理需要先拿到数据，所以会去调用Dao（数据访问层/持久层）
        //Dao从文件中获取数据，然后交给Service进行逻辑处理
        //然后Service再将处理的响应结果返回给Controller进行数据响应

        //按照三层架构来说，当需要修改或拓展某一个功能接口的业务逻辑时
        //不需要对Controller和Dao进行修改
        //这样程序拓展性和可维护性就变得更好了

        //详见项目springboot-showEmployee-three-tier-architecture


    }
}
